package com.easyadmin.modules.stock.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easyadmin.common.web.domain.request.PageDomain;
import com.easyadmin.modules.stock.domain.*;
import com.easyadmin.modules.stock.mapper.SysEtfDao;
import com.easyadmin.modules.stock.mapper.SysEtfDayPriceDao;
import com.easyadmin.modules.stock.mapper.SysStockProductAgeDao;
import com.easyadmin.modules.stock.service.SysEtfDayPriceServer;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

@Service("sysEtfDayPriceServer")
public class SysEtfDayPriceServerImpl extends ServiceImpl<SysEtfDayPriceDao, SysEtfDayPriceEntity>
        implements SysEtfDayPriceServer {


    @Autowired
    SysEtfDayPriceDao sysEtfDayPriceDao;
    @Autowired
    SysEtfDao sysEtfDao;
    @Autowired
    SysStockProductAgeDao sysStockProductAgeDao;


    @Override
    public PageInfo<SysEtfDayPriceEntity> queryPage(SysEtfDayPriceEntity sysEtfDayPriceEntity, PageDomain pageDomain) {
        PageHelper.startPage(pageDomain.getPage(), pageDomain.getLimit());
        List<SysEtfDayPriceEntity> data =sysEtfDayPriceDao.selectList(new QueryWrapper<SysEtfDayPriceEntity>().lambda()
                .like(StringUtils.isNotBlank(sysEtfDayPriceEntity.getCode()),
                        SysEtfDayPriceEntity::getCode,sysEtfDayPriceEntity.getCode())
                .like(StringUtils.isNotBlank(sysEtfDayPriceEntity.getEtfName()),
                        SysEtfDayPriceEntity::getEtfName,sysEtfDayPriceEntity.getEtfName())
                .orderBy(true,false, SysEtfDayPriceEntity::getCreateTime,SysEtfDayPriceEntity::getEtfName));
        return new PageInfo<>(data);
    }


    @Override
    public boolean synchetfd(String id) {
        if(id.contains(",")){
            return false;
        }
        SysEtfDayPriceEntity entity =sysEtfDayPriceDao.selectOne(new QueryWrapper<SysEtfDayPriceEntity>().lambda()
                .eq(SysEtfDayPriceEntity::getId,id));
        if(entity!=null){
            List<SysEtfEntity> list= sysEtfDao.selectList(new QueryWrapper<SysEtfEntity>().lambda()
                    .eq(SysEtfEntity::getEtfCode,entity.getEtfCode()));
            if(list.size()>0){
                return false;
            }
            SysEtfEntity ageEntity=new SysEtfEntity();
            ageEntity.setId(entity.getId());
            ageEntity.setEtfName(entity.getEtfName());
            ageEntity.setEtfCode(entity.getEtfCode());
            ageEntity.setCreateTime(new Date());
            ageEntity.setEffFlag("1");
            sysEtfDao.insert(ageEntity);
            return true;
        }
        return false;
    }


    @Override
    public boolean synch(String id) {
        if(id.contains(",")){
            return false;
        }
        SysEtfDayPriceEntity entity =sysEtfDayPriceDao.selectOne(new QueryWrapper<SysEtfDayPriceEntity>().lambda()
                .eq(SysEtfDayPriceEntity::getId,id));
        if(entity!=null){
            List<SysStockProductAgeEntity> list= sysStockProductAgeDao.selectList(new QueryWrapper<SysStockProductAgeEntity>().lambda()
                    .eq(SysStockProductAgeEntity::getStockCode,entity.getEtfCode()));
            if(list.size()>0){
                return false;
            }
            SysStockProductAgeEntity ageEntity=new SysStockProductAgeEntity();
            ageEntity.setId(entity.getId());
            ageEntity.setStockName(entity.getEtfName());
            ageEntity.setStockCode(entity.getEtfCode());
            ageEntity.setCreateTime(new Date());
            ageEntity.setType("3");
            sysStockProductAgeDao.insert(ageEntity);
            return true;
        }
        return false;
    }

    
}
